{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b'\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x05'"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import struct\n",
    "struct.pack(\">i\",2)#显示高位字节\n",
    "struct.pack(\">iiii\",2,3,4,5)#显示高位字节"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2051, 60000, 28, 28)\n",
      "47040000\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "IOPub data rate exceeded.\n",
      "The notebook server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--NotebookApp.iopub_data_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "NotebookApp.iopub_data_rate_limit=1000000.0 (bytes/sec)\n",
      "NotebookApp.rate_limit_window=3.0 (secs)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "with open('./MNIST_data/train-images-idx3-ubyte','rb') as f:\n",
    "    buffer=f.read(4*4) #4个int\n",
    "    head=struct.unpack('>iiii',buffer)\n",
    "    print(head)\n",
    "    length=head[1]*head[2]*head[3]\n",
    "    print(length)\n",
    "    buffer=f.read(length)\n",
    "    print(buffer)\n",
    "    data=struct.unpack(\">{}B\".format(length),buffer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "47040000"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tuple"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 3,\n",
       " 18,\n",
       " 18,\n",
       " 18,\n",
       " 126,\n",
       " 136,\n",
       " 175,\n",
       " 26,\n",
       " 166,\n",
       " 255,\n",
       " 247,\n",
       " 127,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 30,\n",
       " 36,\n",
       " 94,\n",
       " 154,\n",
       " 170,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 225,\n",
       " 172,\n",
       " 253,\n",
       " 242,\n",
       " 195,\n",
       " 64,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 49,\n",
       " 238,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 251,\n",
       " 93,\n",
       " 82,\n",
       " 82,\n",
       " 56,\n",
       " 39,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 18,\n",
       " 219,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 198,\n",
       " 182,\n",
       " 247,\n",
       " 241,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 80,\n",
       " 156,\n",
       " 107,\n",
       " 253,\n",
       " 253,\n",
       " 205,\n",
       " 11,\n",
       " 0,\n",
       " 43,\n",
       " 154,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 14,\n",
       " 1,\n",
       " 154,\n",
       " 253,\n",
       " 90,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 139,\n",
       " 253,\n",
       " 190,\n",
       " 2,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 11,\n",
       " 190,\n",
       " 253,\n",
       " 70,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 35,\n",
       " 241,\n",
       " 225,\n",
       " 160,\n",
       " 108,\n",
       " 1,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 81,\n",
       " 240,\n",
       " 253,\n",
       " 253,\n",
       " 119,\n",
       " 25,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 45,\n",
       " 186,\n",
       " 253,\n",
       " 253,\n",
       " 150,\n",
       " 27,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 16,\n",
       " 93,\n",
       " 252,\n",
       " 253,\n",
       " 187,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 249,\n",
       " 253,\n",
       " 249,\n",
       " 64,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 46,\n",
       " 130,\n",
       " 183,\n",
       " 253,\n",
       " 253,\n",
       " 207,\n",
       " 2,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 39,\n",
       " 148,\n",
       " 229,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 250,\n",
       " 182,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 24,\n",
       " 114,\n",
       " 221,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 201,\n",
       " 78,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 23,\n",
       " 66,\n",
       " 213,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 198,\n",
       " 81,\n",
       " 2,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 18,\n",
       " 171,\n",
       " 219,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 195,\n",
       " 80,\n",
       " 9,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 55,\n",
       " 172,\n",
       " 226,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 244,\n",
       " 133,\n",
       " 11,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 136,\n",
       " 253,\n",
       " 253,\n",
       " 253,\n",
       " 212,\n",
       " 135,\n",
       " 132,\n",
       " 16,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 51,\n",
       " 159,\n",
       " 253,\n",
       " 159,\n",
       " 50,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 48,\n",
       " 238,\n",
       " 252,\n",
       " 252,\n",
       " 252,\n",
       " 237,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 54,\n",
       " 227,\n",
       " 253,\n",
       " 252,\n",
       " 239,\n",
       " 233,\n",
       " 252,\n",
       " 57,\n",
       " 6,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 0,\n",
       " 10,\n",
       " 60,\n",
       " 224,\n",
       " 252,\n",
       " 253,\n",
       " 252,\n",
       " 202,\n",
       " 84,\n",
       " 252,\n",
       " ...)"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "imgs=np.reshape(data,(head[1],head[2],head[3]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000, 28, 28)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "imgs.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]],\n",
       "\n",
       "       [[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]],\n",
       "\n",
       "       [[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]],\n",
       "\n",
       "       ...,\n",
       "\n",
       "       [[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]],\n",
       "\n",
       "       [[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]],\n",
       "\n",
       "       [[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]]])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "imgs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAANnElEQVR4nO3dX6xV9ZnG8edRW/9RIwzgMBanBbkYNcaOBCcpESe16HghVNMREieIzdCYatqkJhrGWBM1aSbTNt7YBNBAR0aDAQc0zVhCqsgN8WgYRbFFCdPSQ8CGGCzRMMI7F2cxOcWzf+uw/60N7/eTnOx91rvXXm/24WGtvX97rZ8jQgDOfGc13QCA/iDsQBKEHUiCsANJEHYgiXP6uTHbfPQP9FhEeKzlHe3Zbd9s+ze237f9YCfPBaC33O44u+2zJf1W0jcl7ZP0uqTFEfFuYR327ECP9WLPPkfS+xGxJyKOSnpO0oIOng9AD3US9ksl/X7U7/uqZX/G9jLbQ7aHOtgWgA518gHdWIcKnztMj4gVklZIHMYDTepkz75P0vRRv39Z0nBn7QDolU7C/rqkWba/avuLkhZJ2tSdtgB0W9uH8RHxme17Jb0s6WxJT0fEO13rDEBXtT301tbGeM8O9FxPvlQD4PRB2IEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUii7fnZJcn2XkkfSzom6bOImN2NpgB0X0dhr/x9RPyxC88DoIc4jAeS6DTsIelXtt+wvWysB9heZnvI9lCH2wLQAUdE+yvbfxURw7anStos6b6I2Fp4fPsbAzAuEeGxlne0Z4+I4er2oKQXJM3p5PkA9E7bYbd9oe0vnbgvab6knd1qDEB3dfJp/CWSXrB94nn+IyL+qytdAei6jt6zn/LGeM8O9FxP3rMDOH0QdiAJwg4kQdiBJAg7kEQ3ToTBALvuuuuK9TvvvLNYnzdvXrF+5ZVXnnJPJ9x///3F+vDwcLE+d+7cYv2ZZ55pWdu+fXtx3TMRe3YgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKz3s4Ad9xxR8vaE088UVx38uTJxXp1CnNLr7zySrE+ZcqUlrUrrriiuG6dut6ef/75lrVFixZ1tO1BxllvQHKEHUiCsANJEHYgCcIOJEHYgSQIO5AE57MPgHPOKf8ZZs8uT467cuXKlrULLriguO7WrS0n8JEkPfroo8X6tm3bivVzzz23ZW3dunXFdefPn1+s1xkaYsax0dizA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EASjLMPgLprt69atart5968eXOxXjoXXpIOHz7c9rbrnr/TcfR9+/YV62vWrOno+c80tXt220/bPmh756hlk2xvtr27up3Y2zYBdGo8h/GrJd180rIHJW2JiFmStlS/AxhgtWGPiK2SDp20eIGkE8dIayQt7G5bALqt3ffsl0TEfkmKiP22p7Z6oO1lkpa1uR0AXdLzD+giYoWkFRIXnASa1O7Q2wHb0ySpuj3YvZYA9EK7Yd8kaUl1f4mkjd1pB0Cv1F433vazkm6QNFnSAUk/kvSfktZJukzS7yR9OyJO/hBvrOdKeRhfd0748uXLi/W6v9GTTz7ZsvbQQw8V1+10HL3Orl27WtZmzZrV0XPffvvtxfrGjTn3Qa2uG1/7nj0iFrcofaOjjgD0FV+XBZIg7EAShB1IgrADSRB2IAlOce2Chx9+uFivG1o7evRosf7yyy8X6w888EDL2ieffFJct855551XrNedpnrZZZe1rNVNufzYY48V61mH1trFnh1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkqg9xbWrGzuNT3G9+OKLW9bee++94rqTJ08u1l966aVifeHChcV6Jy6//PJife3atcX6tdde2/a2169fX6zffffdxfqRI0fa3vaZrNUpruzZgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJxtnHaerUljNcaXh4uKPnnjFjRrH+6aefFutLly5tWbv11luL61511VXF+oQJE4r1un8/pfptt91WXPfFF18s1jE2xtmB5Ag7kARhB5Ig7EAShB1IgrADSRB2IAnG2cepdD57aVpiSZoyZUqxXnf99F7+jeq+I1DX27Rp04r1Dz/8sO110Z62x9ltP237oO2do5Y9YvsPtndUP7d0s1kA3Teew/jVkm4eY/nPIuKa6ueX3W0LQLfVhj0itko61IdeAPRQJx/Q3Wv7reowf2KrB9leZnvI9lAH2wLQoXbD/nNJMyVdI2m/pJ+0emBErIiI2RExu81tAeiC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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "for i in range(5):\n",
    "    plt.imshow(imgs[i],cmap='gray')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\feature_extraction\\text.py:17: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop working\n",
      "  from collections import Mapping, defaultdict\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'DESCR': 'mldata.org dataset: mnist-original',\n",
       " 'COL_NAMES': ['label', 'data'],\n",
       " 'target': array([0., 0., 0., ..., 9., 9., 9.]),\n",
       " 'data': array([[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)}"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.datasets import fetch_mldata\n",
    "mnist=fetch_mldata(\"MNIST original\",data_home=\"./\")\n",
    "mnist"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "X,y=mnist[\"data\"],mnist[\"target\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(70000, 784)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(70000,)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "some_digit=X[36000]\n",
    "some_digit_image=some_digit.reshape(28,28)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(some_digit_image,cmap=matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.0"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y[36000]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 建立测试集合与训练集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train,X_test,y_train,y_test=X[:60000],X[60000:],y[:60000],y[600000:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "#将数据集合交叉洗牌，交叉验证时，每个子集数据数据均匀分布，有些机器学习算法对训练实例的顺序敏感"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([50254, 52471, 40948, ..., 27917, 16158,  1319])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "shuffle_index=np.random.permutation(60000)\n",
    "shuffle_index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       ...,\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train,y_train=X_train[shuffle_index],y_train[shuffle_index]\n",
    "X_train"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 训练一个二元分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, ..., False, False, False])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_5=(y_train==5)\n",
    "y_train_5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test_5=(y_test==5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SDG 梯度下降分类器，非常适合非常大的数据集，对处理顺利集数据，一次一个，适合在线学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([ True])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import SGDClassifier\n",
    "sgd_clf=SGDClassifier(random_state=42)\n",
    "sgd_clf.fit(X_train,y_train_5)\n",
    "sgd_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 使用交叉验证测量精度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.87117576, 0.86134307, 0.85717858])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 评估分类器比评估回归其要苦难的多\n",
    "#三各折叠，正确率达95%以上\n",
    "\n",
    "from sklearn.model_selection import cross_val_score\n",
    "cross_val_score(sgd_clf,X_train,y_train,cv=3,scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "## 把每张图都分类成 非5\n",
    "from sklearn.base import BaseEstimator\n",
    "\n",
    "class Never5Classifier(BaseEstimator):\n",
    "    def fit(self,X,y=None):\n",
    "        pass\n",
    "    def predict(self,X):\n",
    "        return np.zeros((len(X),1),dtype=bool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False],\n",
       "       [False],\n",
       "       [False],\n",
       "       ...,\n",
       "       [False],\n",
       "       [False],\n",
       "       [False]])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.zeros((len(X),1),dtype=bool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.91135, 0.90645, 0.91115])"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "never_5_clf=Never5Classifier()\n",
    "cross_val_score(never_5_clf,X_train,y_train_5,cv=3,scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 准确率超过90% ，因为5的图像大约只有10%，你猜一张图不是5， 90%的时间你都是正确的\n",
    "* 这说明准确率无法成为分类器的首要性能指标，特别是当你处理偏科数据集， 某些类比其他类更为频繁"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 混淆矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "## 评估分类器性能的更好的方法是混淆矩阵\n",
    "## A类别被分为B类别的次数\n",
    "## 想要知道分类器将数字3和数字5混淆多少次，通过混淆矩阵的5行3列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import cross_val_predict\n",
    "y_train_pred=cross_val_predict(sgd_clf,X_train,y_train_5,cv=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 与cross_val_score相比\n",
    "* 同样执行交叉验证\n",
    "* 返回的不是评估分数，是每个折叠的预测\n",
    "* 每一个实例在模型预测时使用的数据，在训练期间从未见过"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[53537,  1042],\n",
       "       [ 1405,  4016]], dtype=int64)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "\n",
    "confusion_matrix(y_train_5,y_train_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 第一行 第一列 53272 被正确的分为 非5 ，真负类\n",
    "# 第一行 第二列 1307 被错误的分类成 5 ，假正类\n",
    "# 第二行 第一列 1077 张被错误的分为 非5， 假负类\n",
    "# 第二行 第二列 4344 张被正确的分在了5 ，真正类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 这种衡量方式太复杂，我们可以用更简单的指标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[54579,     0],\n",
       "       [    0,  5421]], dtype=int64)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_perfect_predictions = y_train_5\n",
    "confusion_matrix(y_train_5,y_train_perfect_predictions)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "60000"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(y_train_5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, ..., False, False, False])"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(y_train_5==5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## 正类预测的准确率 被称为分类器的精度\n",
    "\n",
    "\n",
    "$\n",
    "\\text{精度} = \\cfrac{TP}{TP + FP}\n",
    "$\n",
    "\n",
    "TP是真正类的数量，FP是假正类的数量\n",
    "\n",
    "\n",
    "\n",
    "$\n",
    "\\text{召回率TPR} = \\cfrac{TP}{TP + FN}\n",
    "$\n",
    "* 检测正类实例的比例\n",
    "FN是假负类的数量\n",
    "![jupyter](./zhaohui.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 精度与召回率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7939897192566232"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import precision_score,recall_score\n",
    "precision_score(y_train_5,y_train_pred) \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7408227264342372"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recall_score(y_train_5,y_train_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 说明 检测一张图的时候，只有90%的概率是准确的，而且只有64%的数字5 被它检测出来\n",
    "# 精度和召回率合成单一指标，成为 F1 分数，谐波平均值\n",
    "# 平均值平等对待所有的值，谐波平均值会给予较低值更高的权重，只有召回率和精度都很高时，才能获得较高的F1分数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 谐波平均值 \n",
    "# F1分数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7664853516556923"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "f1_score(y_train_5, y_train_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "# F1分数对那些具有相近精度和召回率 分类器更有利，这不一定符合你的期望\n",
    "# 有时候你更关心精度，有时你能关心召回率\n",
    "# 训练一个分类器检测儿童可以放心观看的视频，你可能要求拦截了很多好的视频，低召回率，保留下来的都是安全的视频，高精度\n",
    "# 不能同时增加精度并减少召回率，反之亦然"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 精度/召回率权衡"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](./quanheng.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* SGDClassifier对每个实例基于决策函数计算一个分值，大于阀值为正类，否则为负类\n",
    "* 中间阀值右侧找到4个真正类 真5 ， 一个假正类 6， 精度为 4/5 80%\n",
    "* 在所有的6个 真正的5 中，分类器找到了4个，召回率为 4/6 67%\n",
    "* 提高阀值，向右移动，精度提高，召回降低\n",
    "* 反之阀值降低，召回提高，精度降低\n",
    "* SKlearn不可以直接设置阀值，可以访问决策分数，\n",
    "* SGDClassifier 默认阀值为0 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 如何设置阀值\n",
    "\n",
    "# 用predict_proba得到每个实例属于正类的概率，然后对概率切一下。以LogisticRegression为例\n",
    "# clf = LogisticRegression()\n",
    "# clf.fit(X_train, y_train)\n",
    "# pred_proba = clf.predict_proba(X_test)[:, 1]\n",
    "# threshold = 0.75  # 阀值设置为0.75\n",
    "# pred_label = pred_proba > threshold\n",
    "\n",
    "# pred_proba是每个实例为真的概率\n",
    "# 假设阈值是0.75\n",
    "# pred_label里True就是概率大于0.75的\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([48107.63829574])"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 返回决策值decision_function\n",
    "y_score=sgd_clf.decision_function([some_digit])\n",
    "y_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True])"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "threshold = 0\n",
    "y_some_digit_pred = (y_score> threshold)\n",
    "y_some_digit_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False])"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "threshold = 200000\n",
    "y_some_digit_pred = (y_score> threshold)\n",
    "y_some_digit_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 如何决定使用什么阀值\n",
    "# 返回决策值，而不是预测结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "y_scores = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3,\n",
    "                             method=\"decision_function\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000,)"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 有了y_scores，可以计算所有可能的阀值的精度和召回率\n",
    "y_scores.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import precision_recall_curve\n",
    "\n",
    "precisions, recalls, thresholds = precision_recall_curve(y_train_5, y_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 使用matplotlib 绘制精度和召回相对于阈值的函数图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_precision_recall_vs_threshold(precisions, recalls, thresholds):\n",
    "    plt.plot(thresholds, precisions[:-1], \"b--\", label=\"Precision\", linewidth=2)\n",
    "    plt.plot(thresholds, recalls[:-1], \"g-\", label=\"Recall\", linewidth=2)\n",
    "    plt.xlabel(\"Threshold\", fontsize=16)\n",
    "    plt.legend(loc=\"upper left\", fontsize=16)\n",
    "    plt.ylim([0, 1])\n",
    "\n",
    "plt.figure(figsize=(8,4))\n",
    "plot_precision_recall_vs_threshold(precisions, recalls, thresholds)\n",
    "plt.xlim([-700000, 700000])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "def plot_precision_vs_recall(precisions, recalls):\n",
    "    plt.plot(recalls, precisions, \"b-\", linewidth=2)\n",
    "    plt.xlabel(\"召回\", fontsize=16)\n",
    "    plt.ylabel(\"精度\", fontsize=16)\n",
    "    plt.axis([0, 1, 0, 1])\n",
    "\n",
    "plt.figure(figsize=(8, 6))\n",
    "plot_precision_vs_recall(precisions, recalls)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结\n",
    "* 获得了一个90%精度的分类器，但如果召回太低，精度再高，也不怎么有用\n",
    "* 如果工作中，需要99%的精度，你应该回应，召回率是多少？"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ROC曲线 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "# roc曲线的本质是：真正类率tpr和假正类率fpr(错误的分为正类的负类实例比例)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 与召回/精度曲线非常相似"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_curve\n",
    "\n",
    "fpr,tpr,thresholds=roc_curve(y_train_5,y_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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OCEnJ4eRI0cyYcIE+vbtS3Z2Nn369HG6LIlyrgv9tdsLAEiK0yQ+EXHOddddx3/+8x/uuusu5s+fT6tWrZwuScR9s/djvcHJe4e3aORwJSISbQKBADk5OaSnp3PnnXcyfvx4+vbt63RZInu4LvS35pYA0L5ZssOViEg02bx5M2PHjqWwsJAPP/yQjIwMMjIynC5L5Hdc1b2fX+Ijr8RHjMeQpo15RCRM3nnnHTIzM/dstuP1ep0uSaRKrgr9LaGr6yXGevF6tEZfROpXaWkp1113HcOGDaN58+YsXbqUiy++WHuESIPlqtDfFFqjHxvjqh9LRBqokpISXn31VS655BK++OILunTp4nRJIvvkqjH94rIAAMnx6loTkfrz2muvMWTIEFJSUli2bBmpqalOlyRSI65qEucUBffd73lwusOViIgb5efnM378eE4//XQeeeQRAAW+RBRXtfR3F5YC0CRZk/hEpG599dVXDB8+nFWrVjF58mSuuuoqp0sSqTVXhf6uUOina+a+iNShF198kbFjx9KsWTPee+89TjrpJKdLEtkvrure31UY7N5PS4p1uBIRcZOePXtyxhlnkJ2drcCXiOaq0P8pdFldtfRF5EAtXLiQv/71r1hr6dixIy+88ALNmjVzuiyRA+Kq0M8NTeSL05I9EdlPPp+P2267jQEDBjBv3jx27NjhdEkidcZV6RgfCvummsgnIvth/fr1nHTSSUydOpUxY8awfPlyte7FVVw1kS97Qw4AjRJc9WOJSBj4/X4GDRrEpk2beO655xg1apTTJYnUOVelY6vGCfyaU0xSrKt+LBGpR8XFxcTGxuL1epk5cyZt2rThsMMOc7oskXrhqu79/GIfAI0TNXtfRKq3cuVKevfuzX333QdAv379FPjiaq4JfX/AklcSDH1174vIvlhrefLJJ+nVqxebN28mMzPT6ZJEwiLsoW+MmWWM+dwYM6ma4x41xvyppuctLvMDkBSnK+yJyN7l5OQwcuRILrroIo499liys7M5+eSTnS5LJCzCGvrGmDMBr7W2L9DBGNNxL8edALS01v6vpufekR/cjS85Xq18Edm77777jldffZW77rqL+fPn06pVK6dLEgmbcLf0+wMvhW7PB46vfIAxJhZ4AlhrjPlLTU+8ZkcBAC1S4w+4SBFxl0AgwPvvvw9A3759Wbt2LTfddBMe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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_roc_curve(fpr, tpr, label=None):\n",
    "    plt.plot(fpr, tpr, linewidth=2, label=label)\n",
    "    plt.plot([0, 1], [0, 1], 'k--')\n",
    "    plt.axis([0, 1, 0, 1])\n",
    "    plt.xlabel('假正类率', fontsize=16)\n",
    "    plt.ylabel('真正类率', fontsize=16)\n",
    "\n",
    "plt.figure(figsize=(8,6))\n",
    "plot_roc_curve(fpr,tpr)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9586717106322046"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算面积AUC\n",
    "from sklearn.metrics import roc_auc_score\n",
    "\n",
    "roc_auc_score(y_train_5, y_scores)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 召回率TPR越高，分类器的假正类FPR就越多\n",
    "* 虚线表示纯随机分类器的ROC曲线，好的分类器应该远离这条线，向左上角\n",
    "* 是使用精度/召回率 PR曲线，还是使用ROC，关键在于 正类非常少或者更关注假正类而不是假负类，选择PR，反之ROC\n",
    " （假正类：6分成了5，假负类：5分成了3）\n",
    "* 例如：前面例子ROC曲线很不错是因为跟负类 非5 相比， 正类 数据5 数量真的很少"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练随机森林分类器，比较SGD分类器的ROC曲线和ROC AUC分数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 获取训练集中每个实例的分数\n",
    "* RandomForestClassifier 没有descision_function(),但是拥有dict_proda()方法，sklearn中分类器都有这两个中的一个\n",
    "* dict_proda返回一个矩阵，每行一个实例，每列代表一个类别的概率，比如这个图片 70%是5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.\n",
      "  from numpy.core.umath_tests import inner1d\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "forest_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n",
    "y_probas_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3,\n",
    "                                    method=\"predict_proba\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1. , 0. ],\n",
       "       [1. , 0. ],\n",
       "       [1. , 0. ],\n",
       "       ...,\n",
       "       [0.9, 0.1],\n",
       "       [1. , 0. ],\n",
       "       [0.9, 0.1]])"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_probas_forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 绘制ROC曲线，需要决策值不是概率，直接使用正类的概率作为决策值：\n",
    "y_scores_forest = y_probas_forest[:, 1] \n",
    "fpr_forest, tpr_forest, thresholds_forest = roc_curve(y_train_5,y_scores_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0. , 0. , 0. , ..., 0.1, 0. , 0.1])"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_scores_forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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efDBBylVqhRbt24lJibmhtcPHTo06X6xYsVISEgA4Pfff6do0aJUqVIl6fnmzZsn3d+3bx9FihRJCnwwXfpRUVFJf0PLlCmTVEvK+1mxYMEC9u7dm3QrW7YsAPv378dms9GyZcsb9m+z2di/f/8N2/jvf/970+DrP/74g9jYWAYNGpTUNT9o0CDi4+M5fvw4AE888QSbNm2iWbNmjB07lpMnT9KsWbMs1e9MLt/SL1ECatbM2X1orVm0aBEjR47E19eXNWvW8MADD+TsToUQucbttrBzi6CgIIKCgujcuTOvv/46PXv2BODq1asEBwdTsmRJ+vTpw8SJE5k7d+5Nr0/v9DebzYaHx41tR09Pzxsepw5wx2NtP66fHapWrXrDF4vUUtaQ3v4bNmx40+sc63z22WdUrVr1huccX5wefvhhfv31V9atW8e2bdvo1KkTTz/9NLNnz76dt5LjXL6l7wxhYWE88cQTNG7cmIiICAl8IYRLGj9+PHv37mXDhg0AbNq0iaNHj7J27VqeeeYZmjRpkmYvZuogd6hSpQoXLlxIavUC/PTTT0n3g4KCuHz58g2t6m3btuHr60u1atWy622lq169enh4eNxwqGDbtm14eHhQr169DF9ftWpVvL29uX79etIXJz8/P958800uXboEwBtvvMGJEycYPnw4K1asYMqUKSxatOiG7eTPn/+m3hOruHxLPzISTp6EcuWyf9vnzp2jRIkSNGzYkHXr1tG2bdt0f/mFECK3a9SoEW3atOH111+nXbt2SSP4Fy1aRN26dZkzZw4///xzpie26dixIxUqVKB///5MmDCB8PBwvvjiC8rZ/yDfd999tGvXjp49e/LGG29w+vRpXn75ZSZMmOCUOQLuvvtunnjiCYYPH05MTAxaa5599lmGDBmS1FK/FV9fX0aPHs2YMWPQWlOuXDkmT57MpUuXKF26NABHjhxhxYoVvPrqqxQoUICvv/76ptO2g4ODOX/+PPPnz6d27dps376dF154ISfecsZuZ/RfbrpBA71kSYYDIbMkMTFRv/7669rX11fv3r07ezcuhMjV3Hn0vtZab968WQM6NDRUa631Sy+9pIsVK6ZLlSqlBw0apIcNG6arVq2qExISkkbHHz16NOn1jtHuDocPH9YtW7bUvr6+Ojg4WL/wwgs3jN6/ePGi7tOnj/bz89MlS5bU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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 6))\n",
    "plt.plot(fpr, tpr, \"b:\", linewidth=2, label=\"SGD\")\n",
    "plot_roc_curve(fpr_forest, tpr_forest, \"Random Forest\")\n",
    "plt.legend(loc=\"lower right\", fontsize=16)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.99150378524709"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Rand 比SGD 好很多，ROC AUC的分数也高很多\n",
    "roc_auc_score(y_train_5, y_scores_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9878613992496138"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 再看一下 精度和召回率 也很高\n",
    "y_train_pred_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3)\n",
    "precision_score(y_train_5, y_train_pred_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8256779192030991"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recall_score(y_train_5, y_train_pred_forest)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结\n",
    "* 选择合适的指标利用交叉验证来对分类器进行评估\n",
    "* 选择满足需求的精度/召回率权衡\n",
    "* 使用ROC曲线和ROC AUC分数比较多个模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多类别分类器\n",
    "* 尝试5 之外的检测\n",
    "* 多类别分类器 区分两个以上的类别\n",
    "* 随机森里和朴素贝叶斯可以直接处理多个类别\n",
    "* 支持向量机svm和线性分类器只可以处理二元分类器"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 解决方案\n",
    "1. 将数字图片分类0到9，训练10个二元分类器，每个数字一个，检测一张图片时，获取每个分类器的决策分数，哪个最高属于哪个，称为一对多OvA\n",
    "2. 为每一对数字训练一个二元分类器，区分0，1 区分0，2 区分1，2 称为一对一OvO策略，存在N个类别，需要N*（N-1）/2个分类器，最后看哪个类别获胜最多\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 优缺点\n",
    "* OvO 只需要用到部分训练集对其必须区分两个类别进行训练\n",
    "* 对于较小训练集合OvO比较有优势， 大训练集合 OvA 速度快，所以OvA更常用，比如svm 在数据规模扩大时表现糟糕\n",
    "* sklearn 检查到使用二元分类算法进行多类别分类任务，会自动运行OvA，SVM分类器除外"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "SGDClassifier(alpha=0.0001, average=False, class_weight=None, epsilon=0.1,\n",
       "       eta0=0.0, fit_intercept=True, l1_ratio=0.15,\n",
       "       learning_rate='optimal', loss='hinge', max_iter=None, n_iter=None,\n",
       "       n_jobs=1, penalty='l2', power_t=0.5, random_state=42, shuffle=True,\n",
       "       tol=None, verbose=0, warm_start=False)"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sgd_clf.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sgd_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ -61191.03618758, -552541.85627172, -291056.66205272,\n",
       "        -156306.33280563, -340276.11069766,   48107.63829574,\n",
       "        -742084.68169093, -412683.62534838, -621026.94106856,\n",
       "        -760237.21523228]])"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 内部实际上训练了10个二元分类器，获得图片的决策分数，然后选择了分数最高的类别\n",
    "# 返回10个分数，每个类别1个\n",
    "some_digit_scores=sgd_clf.decision_function([some_digit])\n",
    "some_digit_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmax(some_digit_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 目标类别列表会存储在classes_这个属性中，按值大小排列，\n",
    "sgd_clf.classes_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.0"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sgd_clf.classes_[np.argmax(some_digit_scores)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用OvO策略，一对一或者一对多\n",
    "from sklearn.multiclass import OneVsOneClassifier\n",
    "ovo_clf = OneVsOneClassifier(SGDClassifier(max_iter=5, tol=-np.infty, random_state=42))\n",
    "ovo_clf.fit(X_train, y_train)\n",
    "ovo_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "45"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(ovo_clf.estimators_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用随机森林\n",
    "forest_clf.fit(X_train, y_train)\n",
    "forest_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0. , 0. , 0. , 0. , 0. , 0.9, 0. , 0.1, 0. , 0. ]])"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 随机森林直接将实例分为多个类别，调用predict_proba()可以获得分类器将每个实例分类为每个类别的概率列表\n",
    "forest_clf.predict_proba([some_digit])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 评估分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [],
   "source": [
    "## 使用交叉验证评估SGD的正确率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.87117576, 0.86134307, 0.85717858])"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(sgd_clf, X_train, y_train, cv=3, scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.91126775, 0.90894545, 0.91118668])"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#将输入进行简单的缩放，可以得到准确率90%以上\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "scaler=StandardScaler()\n",
    "X_train_scaled=scaler.fit_transform(X_train.astype(np.float64))\n",
    "cross_val_score(sgd_clf,X_train_scaled,y_train,cv=3,scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 错误分析"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 项目流程\n",
    "1. 探索数据准备的选项\n",
    "2. 尝试多个模型\n",
    "3. 选择最佳模型并用GridSearchCV对参数进行微调\n",
    "4. 尽可能自动化\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 确定了一个相对合适的模型，进一步优化，分析其错误类型\n",
    "* 查看混淆矩阵\n",
    "* 使用cross_val_predict()进行预测\n",
    "* 调用confusion_matrix()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n",
      "c:\\users\\yxx\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:123: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[5740,    2,   19,    9,   12,   46,   44,    8,   39,    4],\n",
       "       [   1, 6469,   44,   24,    6,   41,    6,   12,  130,    9],\n",
       "       [  56,   32, 5324,   99,   86,   30,   86,   57,  174,   14],\n",
       "       [  43,   42,  135, 5348,    2,  232,   36,   52,  149,   92],\n",
       "       [  18,   26,   35,    8, 5362,   10,   56,   28,   86,  213],\n",
       "       [  63,   41,   33,  202,   76, 4590,  115,   28,  194,   79],\n",
       "       [  29,   24,   49,    2,   48,   87, 5624,    4,   50,    1],\n",
       "       [  22,   21,   71,   32,   50,   12,    6, 5821,   16,  214],\n",
       "       [  50,  143,   64,  145,   11,  147,   53,   23, 5068,  147],\n",
       "       [  44,   36,   23,   89,  155,   42,    2,  195,   81, 5282]],\n",
       "      dtype=int64)"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_pred=cross_val_predict(sgd_clf,X_train_scaled,y_train,cv=3)\n",
    "conf_mx=confusion_matrix(y_train, y_train_pred)\n",
    "conf_mx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPkAAAEACAYAAABxpdD1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKYklEQVR4nO3dTYiddxWA8edkMmmL1prBWgkJhYArDTYyVAtG2lJLXUhQK7VIC1UJith1REuxCwUpboQUx1o3frtQCESoCMEWGiSmlNCqtIsGaQl+jF8tNM7HcZEpDelk7juZ93/fuWee32qSmf7n5DZP3jsz954bmYmkurYNPYCktoxcKs7IpeKMXCrOyKXijFwqzsg7iIhrIuLXEfF4RPwyInYMPVMXEXFdRDw99BzrERFHIuJjQ8/RRUTsjIhjEXEyIr479DyXMkjkEfH9iHgqIr42xOe/DJ8Bvp2ZtwNngTsGnqerh4Grhh6iq4g4ALwrM48OPUtH9wA/ysxZ4OqImB16oNWMPfKI+AQwlZk3AXsj4t3jnmG9MvNIZv5m5ZfXAn8dcp4uIuJW4FXO/6O06UXENPA94MWIODj0PB39A3hvRLwd2AP8ZdhxVjfElfxm4Ocrbz8OfGiAGS5LRNwE7MzME0PPspaVLyceAA4PPcs63As8B3wLuDEivjzwPF08CVwP3A/8EZgfdpzVDRH5W4CXVt6eB64bYIZ1i4gZ4DvAZ4eepYPDwJHM/NfQg6zDfmAuM88CPwRuGXieLh4EvpCZDwF/Au4beJ5VDRH5K7zxdeJbB5phXVaujL8AvpKZZ4aep4PbgC9FxHHghoh4dOB5ungB2Lvy9iwwCbfzTmBfREwBHwA25RNBYtxPUImIe4F3ZubDEfF14M+Z+eOxDrFOEfFF4BvAMyu/9Uhm/mzAkTqLiOOZefPQc4wSEVcDj3H+nt00cGdmvrT2fzWsiLgR+AHn77I/BXw8M18Zdqo3GyLytwFPAL8FPgp8MDP/PdYhpC1k7JHD+Z8vAh8BfrfyNZikRgaJXNL4bPpveknaGCOXihss8og4NNTnvlzO3N6kzQubf+Yhr+Sb+oa5BGdub9LmhU0+s3fXpeJ6/e76zMxM7t69u9PHzs/PMzMz0+ljT58+vZGxpC0hM2O139/e5yfZvXs3x44d6/NIAPbs2dP7mXqziFX/jmxqrX4E3PK2GPePrb27LhVn5FJxRi4VZ+RScUYuFWfkUnGdIp/A7aqSVoyMfBK3q0p6Q5cr+c1M6HZVSd0iX3O7akQcWnkFiZPz85tyI620pXWJfM3tqpk5l5mzmTnb9bHoksanS+R/4I276O8DXmw2jaTedXmCyq+AJyJiFyvbVZtOJKlXI6/kmfkfzn/z7QRwi+uTpcnS6ammmflP3vgOu6QJ4iPepOKMXCrOyKXijFwqrtdFjhHRZHlVy51Y27a1+XduEl9+qtVes0m8Laanp5udvbCw0OTcSy1y9EouFWfkUnFGLhVn5FJxRi4VZ+RScUYuFWfkUnFGLhVn5FJxRi4VZ+RScUYuFWfkUnFGLhVn5FJxRi4VZ+RScUYuFWfkUnFGLhVn5FJxnV4LbT1arDhutTYZ4Jlnnmly7v79+5uc29Ly8nKTc6emppqcC+3WPbdaTz0Er+RScUYuFWfkUnFGLhVn5FJxRi4VZ+RScUYuFTfywTARcQ3wU2AKeBW4KzP/13owSf3ociX/DPDtzLwdOAvc0XYkSX0aeSXPzCMX/PJa4K/txpHUt86PXY+Im4CdmXniot8/BBzqezBJ/egUeUTMAN8BPnnx+zJzDphb+bg2zxaQdNlGfk0eETuAXwBfycwz7UeS1Kcu33j7HPB+4KsRcTwi7mo8k6QedfnG2yPAI2OYRVIDPhhGKs7IpeKMXCrOyKXijFwqLvrcdhkROWlbLrdv731hLQCnTp1qci7Avn37mpx71VVXNTn3tddea3IutNuq2nLDbIutuEtLS2TmqjeGV3KpOCOXijNyqTgjl4ozcqk4I5eKM3KpOCOXijNyqTgjl4ozcqk4I5eKM3KpOCOXijNyqTgjl4ozcqk4I5eKM3KpOCOXijNyqTgjl4rrfSVzb4eNSauVvn3erhc7ffp0k3NbrXretq3dtaTV7dxy5unp6d7PPHfuHMvLy65klrYiI5eKM3KpOCOXijNyqTgjl4ozcqm4TpFHxHUR8XTrYST1r+uV/GGgzYtXS2pqZOQRcSvwKnC2/TiS+rZm5BGxA3gAODyecST1bfuI9x8GjmTmvy71GO+IOAQc6nswSf0YdXf9NuBLEXEcuCEiHr34AzJzLjNnM3O2xYCSNmbNK3lmfvj1tyPieGZ+vv1IkvrU+efkmXlzwzkkNeKDYaTijFwqzsil4oxcKs7IpeKMXCqu922tLbZcttx82sqOHTuanb2wsNDk3KNHjzY59+DBg03OBVhaWmpybsv/f4uLi72fubS0RGa6rVXaioxcKs7IpeKMXCrOyKXijFwqzsil4oxcKs7IpeKMXCrOyKXijFwqzsil4oxcKs7IpeKMXCrOyKXijFwqzsil4oxcKs7IpeJ639Z6qdcx34iW21pbzAuTOXOLTbsAzz//fJNzAfbu3dvk3Fa3MbT7u+G2VmmLMnKpOCOXijNyqTgjl4ozcqk4I5eKM3KpuM6RR8SRiPhYy2Ek9a9T5BFxAHhXZrZ5AWtJzYyMPCKmge8BL0ZEu1eTl9RElyv5vcBzwLeAGyPiyxe+MyIORcTJiDjZYkBJG9Ml8v3AXGaeBX4I3HLhOzNzLjNnM3O2xYCSNqZL5C8Arz/VZxY4024cSX3b3uFjvg88FhGfBqaBO9uOJKlPIyPPzP8CnxrDLJIa8MEwUnFGLhVn5FJxRi4VZ+RScUYuFdf7SubeDhuTVmuIW65kbmUSZ3755ZebnLtr164m5wJceeWVvZ957tw5lpeXXcksbUVGLhVn5FJxRi4VZ+RScUYuFWfkUnFGLhVn5FJxRi4VZ+RScUYuFWfkUnFGLhVn5FJxRi4VZ+RScUYuFWfkUnFGLhVn5FJxvW9rjVh1YeSGbN/e5cVXL8/S0lKTc6emppqcC7CwsNDk3Onp6SbntrqNAZaXl5uce+LEiSbnAhw4cKD3MxcXF93WKm1VRi4VZ+RScUYuFWfkUnFGLhVn5FJxa0YeETsj4lhEnIyI745rKEn9GXUlvwf4UWbOAldHxOwYZpLUo1GR/wN4b0S8HdgD/KX5RJJ6NSryJ4HrgfuBPwLzzSeS1KtRkT8IfCEzHwL+BNx38QdExKGVr9lPthhQ0saMinwnsC8ipoAPAG96NktmzmXm7MrX7ZI2mVGRfxOYA/4NzAA/aT6RpF6t+RzOzPw98J4xzSKpAR8MIxVn5FJxRi4VZ+RScUYuFWfkUnFGLhU3ESuZW+rzz3+hliuZW53datVzq9sY4Iorrmhy7uLiYpNzAU6dOtX7mXfffTfPPvusK5mlrcjIpeKMXCrOyKXijFwqzsil4oxcKs7IpeKMXCrOyKXijFwqzsil4oxcKs7IpeKMXCrOyKXijFwqzsil4oxcKs7IpeKMXCqu722tfwPOdPzwdwB/7+2Tj4cztzdp88LmmPn6zLx2tXf0Gvl6RMTJzJwd5JNfJmdub9Lmhc0/s3fXpeKMXCpuyMjnBvzcl8uZ25u0eWGTzzzY1+SSxsO761JxRi4VZ+RScUYuFWfkUnH/BwQkPkhA4Y2SAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用matplotlib的matshow 函数来查看混淆矩阵的图像表示\n",
    "plt.matshow(conf_mx,cmap=plt.cm.gray)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 看起来不错，大多数图片都在主对角线上，说明它们被正确分类\n",
    "# 数字5 看起来比较暗，说明1. 数字5图片较少  2. 分类器在数字5上执行效果不如其他数字上好\n",
    "# 假设把焦点放在错误上，为取得错误率，而不是错误绝对值，需要将混淆矩阵中每个值除以相应类别中的图片数量\n",
    "row_sums=conf_mx.sum(axis=1,keepdims=True)\n",
    "norm_conf_mx=conf_mx/row_sums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#用0补充对角线，只报了错误，重新绘制\n",
    "np.fill_diagonal(norm_conf_mx,0)\n",
    "plt.matshow(norm_conf_mx,cmap=plt.cm.gray)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 每行代表实际类别，每列代表预测类别\n",
    "# 8，9列比较亮，说明许多图片被错误的分类为数字8，9\n",
    "# 类别8，9行也偏亮，说明数字8和9经常会跟其他数字混淆\n",
    "# 有些很暗，比如行1，大多数数字1都被正确的分类，一些和8混淆\n",
    "# 5和3是错误最多的"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 结论\n",
    "* 改进数字8和9的分类\n",
    "* 修正数字3和5的混淆\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 如何优化分类器\n",
    "* 尝试多收集这些数字的训练集\n",
    "* 开发一些新特征来改进分类器\n",
    "* 优化分类器算法\n",
    "* 使用pillow或opencv对图片预处理，让显示模型更突出\n",
    "* 分析单个错误"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_digits(instances, images_per_row=10, **options):\n",
    "    size = 28\n",
    "    images_per_row = min(len(instances), images_per_row)\n",
    "    images = [instance.reshape(size,size) for instance in instances]\n",
    "    n_rows = (len(instances) - 1) // images_per_row + 1\n",
    "    row_images = []\n",
    "    n_empty = n_rows * images_per_row - len(instances)\n",
    "    images.append(np.zeros((size, size * n_empty)))\n",
    "    for row in range(n_rows):\n",
    "        rimages = images[row * images_per_row : (row + 1) * images_per_row]\n",
    "        row_images.append(np.concatenate(rimages, axis=1))\n",
    "    image = np.concatenate(row_images, axis=0)\n",
    "    plt.imshow(image, cmap = matplotlib.cm.binary, **options)\n",
    "    plt.axis(\"off\")\n",
    "\n",
    "#查看数字3和数字5的例子\n",
    "cl_a,cl_b=3,5\n",
    "X_aa=X_train[(y_train==cl_a)&(y_train_pred==cl_a)]\n",
    "X_ab=X_train[(y_train==cl_a)&(y_train_pred==cl_b)]\n",
    "X_ba=X_train[(y_train==cl_b)&(y_train_pred==cl_a)]\n",
    "X_bb=X_train[(y_train==cl_b)&(y_train_pred==cl_b)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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vr7XdE/Ozc1x/PhxGhsb0Wq1qNVqfHx83OotEMZlNBr54x//iK+vL3a7nZKSknkt8qqrq0VxfIHw8HBKSkoICwtziTrOpQg76ezsbIaHh+nv70ev1/P222/zwQcfEBAQQFBQ0Lyd48jICDMzMwv+niUlJTzxxBNub878wgsvoFarSUhI4O6772bPnj2icb/099u8eTMbNmxwyfFd1pXDYrEwOjpKdXU1//7v/47RaCQ4OJg777wTb29vDAYDZ8+epaurS4w1bt++nW3btrFmzRq3CmZfCy0tLZw4cYKvfOUrhIeHs3HjRp588kny8vLcGhzfu3cvr776Knv27MFkMon1ihe7KYRVXGBgIHFxcXz2s59lx44dREVFuTzT0mQyUVdXx//8z//gcDj4whe+QElJCX5+fh95HqxWK7/+9a954403qKio4J577uH222/n8ccfd9kiQ2jpJbi+bTYbRqOR3t5e+vv76ezsFBc4EomEmJgY1q5dS1ZWFvn5+fNaBN0Et3Y685X5yOdZWK1XVlZy6NAhfvzjH4uNeX19fcnJyRFF8P39/RkYGKClpYWqqiq6urrw9vYmLi6O5557jtzc3JvWN33ppZcoKyvj7bffRqPREBISQnR0NHfffTfDw8MYDAYUCgUWi0UUfejq6kIul6PT6di9ezcxMTGsWLGCBx54gOLiYrcKjlitVnbv3s2LL77I0aNHxXj7X/3VX7Fy5UpmZmZoamrimWeeobe3l6mpKeCCR+P222/nqaeeIigoyK3JLdPT03R3d3PmzBm++c1votfrsdlsC3YuEWTbBKRSKQqFgs985jPcf//9bNu2zW0eNiGRbufOnXR1daHT6VCpVBiNRqxWq+hOlclkxMTE8H//938sX76c4ODg6/VUubcrh7e3t5gcsmvXLmpra8VWLhKJBLvdzvj4ODKZjPj4eBITE9m1axdZWVlL2l/P6XQyMTFBVVUVR48exWazUVRUxNq1a0lOTnara1UqlZKXl8f09DQymYzz58/T0dHB7OwscrmcZcuWIZFIMBqN+Pj4kJ+fz/Lly1m9ejXR0dFucUPLZDLCw8MJCAigq6uLV155haamJnJycsjOziYgIACFQoFcLhdvQKHWrLq6mvLycnp7e0lPT2fTpk0UFBS49EEX2nRd6nby8/MjMjKSxMRE4uLixE7ngYGBJCUlERkZ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\n",
      "text/plain": [
       "<Figure size 576x576 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8,8))\n",
    "plt.subplot(221)\n",
    "plot_digits(X_aa[:25],images_per_row=5)\n",
    "plt.subplot(222)\n",
    "plot_digits(X_ab[:25],images_per_row=5)\n",
    "plt.subplot(223)\n",
    "plot_digits(X_ba[:25],images_per_row=5)\n",
    "plt.subplot(224)\n",
    "plot_digits(X_bb[:25],images_per_row=5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 多标签分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 为每个实例产生多个类别 ，例如 照片识别多个人脸\n",
    "# 分类器经过训练可以识别小红，小白，小军，一张照片 里有 小红，小白\n",
    "# 经过分类器，应该输出[1,1,0]， 是小红，是小白，不是小军\n",
    "# 输出多个二元标签的分类系统称为多标签分类系统"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
       "           metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n",
       "           weights='uniform')"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "y_train_large=(y_train>=7)\n",
    "y_train_odd=(y_train%2==1)\n",
    "y_multilabel=np.c_[y_train_large,y_train_odd]\n",
    "\n",
    "knn_clf=KNeighborsClassifier()\n",
    "knn_clf.fit(X_train,y_multilabel)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False,  True]])"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "## knn支持多标签分类，不是所有的分类器都支持\n",
    "knn_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# # 评估多标签分类器方法很多，方法之一就是测量每个标签的F1分数，或者其他二元分类器指标，然后简单平均\n",
    "y_train_knn_pred = cross_val_predict(knn_clf, X_train, y_multilabel, cv=3)\n",
    "f1_score(y_multilabel, y_train_knn_pred, average=\"macro\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 上面假设了所有标签都同等重要，也可以给每个标签设置一个权重（该目标标签实例的数量），设置average='weighted'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 多输出分类器\n",
    "### 例子：构建一个系统去除图片中的噪声，输入一张有噪声的图片，它将输入一张干净的数字图片，分类器输出是多个标签，一个像素一个标签，每个标签多个值0到255"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 增加噪声，目标将图片还原为原始图片 创建训练集和测试集\n",
    "noise = np.random.randint(0, 100, (len(X_train), 784))\n",
    "X_train_mod = X_train + noise\n",
    "noise = np.random.randint(0, 100, (len(X_test), 784))\n",
    "X_test_mod = X_test + noise\n",
    "y_train_mod = X_train\n",
    "y_test_mod = X_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "some_index = 5500\n",
    "plt.subplot(121);plt.imshow(X_test_mod[some_index].reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.subplot(122);plt.imshow(y_test_mod[some_index].reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "knn_clf.fit(X_train_mod, y_train_mod)\n",
    "clean_digit = knn_clf.predict([X_test_mod[some_index]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.imshow(clean_digit.reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
